1. Technical Field
The present invention relates to the process of computer code development and more particularly, to providing feedback and recommendations by analyzing same.
2. Discussion of the Related Art
The life cycle of computer code development, according to some models, includes a sequence of well structured steps. The process usually begins with the requirement documents detailing in a natural language format what the customer needs. The requirements are then being transformed into design specification by a software engineer. The design specification outline in a high level forms the specifications that the computer code needs to implement in order to meet the requirements. The design specifications are then being implemented in actual computer code form by a programmer over a specified software development environment. The development environment is usually a computer aided tool that provided templates, libraries and overall support in the process of transforming the design requirements into a computer code.
After the completion of the implementation of the design specifications in computer code, the code may be checked for bugs that have been generated during the implementation of the design specifications. Bugs are detected, for example, by formal and functional testing. Many approaches and techniques for detecting these bugs and improving the overall quality of software programs have been developed throughout the years. Some of these techniques may include: code review, static analysis, unit testing, system testing, and coverage analysis.
However, all of these techniques are executed post factum, after some or all of the computer code has been authored by the programmers. Specifically, none of the aforementioned techniques analyzes the software development actions performed by the programmer over his or her development environment.